﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
/********************三.分支与循环（上）*****************/
/************6. while循环************/

//while(表达式)
//	  语句;//如果循环体想包含更多的语句，可以加上⼤括号

/*
int main()
{
	int a = 0;
	scanf("%d",&a);
	if (a)
	{
		printf("hehe\n");
	}
	return 0;
}*/

/*
int main()
{
	int a = 0;
	scanf("%d", &a);
	while (a)
	{
		printf("hehe\n");
	}
	return 0;
}*/

//练习：在屏幕上打印 1~10 的值
/*
int main()
{
	int a = 1;
	while (a <= 10)
	{	
		printf("%d ",a);
		a++;
	}
	return 0;
}*/

//输⼊⼀个正的整数，逆序打印这个整数的每⼀位
/*
int main()
{
	int num = 0;
	int rem = 0;
	scanf("%d",&num);
	while(num)
	{
		rem =num % 10;
		printf("%d ", rem);
		num /= 10;
	}

	return 0;
}*/

/***************7. for循环***************/

//for(表达式1; 表达式2; 表达式3)
//语句；//如果循环体想包含更多的语句，可以加上⼤括号
//表达式1 ⽤于循环变量的初始化
//表达式2 ⽤于循环结束条件的判断
//表达式3 ⽤于循环变量的调整

/*
int main()
{
	int a = 1; //循环变量的初始化

	while (a <= 10) //循环的判断条件
	{
		printf("%d ", a);
		a++;	//循环变量的调整
	}
	return 0;
}*/

//练习：在屏幕上打印1~10的值
/*
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		printf("%d ", i);
	}
		
	return 0;
}*/

//练习1：计算1~100之间3的倍数的数字之和
/*1.
int main()
{
	int num = 0;
	int i = 0;
	for (i = 3; i <= 100; i++)
	{
		if (i % 3 == 0)
		{
			num = num + i;
		}
	}
	printf("%d",num);
	return 0; 
}*/

/*2.
int main()
{
	int num = 0;
	int i = 0;
	for (i = 3; i <= 100; i += 3)
	{
		num = num + i;
	}
	printf("%d", num);
	return 0;
}*/

/*************8. do-while 循环***************/
//do
//语句；
//while (表达式)；//特征：循环至少被执行一次
// do while 循环则是先直接进⼊循环体，执⾏循环语句，然后再执⾏ while 后的判断表达式，表达式为真，就会进⾏下⼀次，表达式为假，则不再继续循环。

//练习在屏幕上打印1~10的值
/*
int main()
{
	int i = 1;
	do
	{
		printf("%d ", i);
		i++;
	} while (i <= 10);
	return 0;
}*/

//练习输⼊⼀个正整数，计算这个整数是⼏位数？
/*
int main()
{
	int cnt = 0;
	int num = 0;
	scanf("%d",&num);
	do
	{
		num /= 10;
		cnt++;
	} while (num);
	printf("%d", cnt);
	return 0;
}*/

/********9. break和continue语句********/

//(1).break
/*
int main()
{
	int i = 1;
	while (i <= 10)
	{
		if (i == 5)
		{
			break;
		}
		printf("%d ",i);
		i++;
	}
	return 0;
}*/

//(2).continue
/*
int main()
{
	int i = 1;
	while (i <= 10)
	{

		if (i == 5)
		{
			continue;
		}
		printf("%d ", i);
		i++;
	}
	return 0;
}*/

/*
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			break;
		}
		printf("%d ",i);
	}
	return 0;
}*/

/*
int main()
{
	int i = 0;
	for (i = 1; i <= 10; i++)
	{
		if (i == 5)
		{
			continue;
		}
		printf("%d ", i);
	}
	return 0;
}*/

/**************10. 循环的嵌套*************/

//练习：找出100~200之间的素数，并打印在屏幕上。


int main()
{
	int i = 0;  
	for (i = 100; i <= 200; i++)
	{
		int j = 0;
		//int flag = 1;
		for (j = 2; j < i; j++)
		{
			if ( i % j == 0)
			{
				//flag = 0;
				break;
			}
		}
		//if (flag == 1)
		//{
			//printf("%d ",i);
		//}

		if (j == i)
		{
			printf("%d ", i);
		 }
	}
	return 0;
}

//优化
/*
#include <math.h>
int main()
{
	int i = 0;
	for (i = 101; i <= 200; i += 2)
	{
		int j = 0;
		int flag = 1;
		//产生2~sqrt(i)之间的数字，去试除i //一个数的因子在2~根号n之间
		for (j = 2; j <= sqrt(i); j++)
		{
			if (i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if (flag == 1)
		{
			printf("%d ",i);
		}
	}
	return 0;
}*/

/********11. goto 语句*********/
/*
int main()
{
	printf("hehe\n");
	goto next;
	printf("haha\n");
next:
	printf("heihei\n");
	return 0;
}*/

/*
int main()
{
again:
	printf("hehe\n");
	goto again;
	return 0;
}*/

//关机程序
#include <windows.h>
#include <stdlib.h>

/*
int main()
{
	char input[20] = { 0 };
	system("shutdown -s -t 60");
again:
	printf("请注意，你的电脑将在一分钟内关机，如果输入：我是猪，就取消关机\n");
	scanf("%s",input);

	//字符串不能使用 == 比较大小
	//而使用strcmp函数 - string compare
	//0 == strcmp(input, "我是猪") strcmp判断两个是否相等，相等返回一个0
	if (strcmp(input, "我是猪") == 0)
	{
		system("shutdown -a");
	}
	else
	{
		goto again;
	}
	return 0;
}*/